home *** CD-ROM | disk | FTP | other *** search
/ An Invitation to the Roland World of Music / Roland - An Invitation To The Roland World Of Music.bin / roland.mst < prev    next >
Text File  |  1995-06-09  |  7KB  |  284 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5.  
  6. '$INCLUDE 'setupapi.inc'
  7. '$INCLUDE 'msdetect.inc'
  8.  
  9. ''Dialog ID's
  10. CONST WELCOME       = 100
  11. CONST ASKQUIT       = 200
  12. CONST DESTPATH      = 300
  13. CONST EXITFAILURE   = 400
  14. CONST EXITQUIT      = 600
  15. CONST EXITSUCCESS   = 700
  16. CONST APPHELP       = 900
  17. CONST WINVER30      = 2100
  18. CONST TOOBIG        = 6300
  19. CONST BADPATH       = 6400
  20. CONST RESTARTWIN    = 7900
  21.  
  22. ''Bitmap ID
  23. CONST LOGO = 1
  24.  
  25. GLOBAL DEST$        '' Default destination directory.
  26. GLOBAL SOUNDDIR$    '' Directory for sound driver
  27. GLOBAL WINSYSDIR$   '' Windows System Directory
  28. GLOBAL WINDIR$      '' Windows Directory
  29. GLOBAL DESTDRIVE$   '' Destination drive
  30. GLOBAL CDROMDRIVE$  '' CD-ROM drive that contains applications to be run
  31. GLOBAL DISKREQ&     '' Free disk space required
  32. GLOBAL EERCODE%     '' ExitExecRestart return code
  33.             '' 0 = Write errors / Restart fails / 
  34.             ''     Windows cannot exit / Cannot find _MSSETUP.EXE
  35.             '' 1 = Restart list is empty / Windows version is 3.0
  36. GLOBAL CUIDLL$      '' Custom User Interface Dynamic Link Library
  37.  
  38.  
  39. DECLARE SUB Install
  40. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  41.  
  42.  
  43. INIT:
  44.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  45.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  46.  
  47.     SetBitmap CUIDLL$, LOGO
  48.     SetTitle "Roland World of Music Setup"
  49.  
  50.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  51.     IF szInf$ = "" THEN
  52.     szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  53.     END IF
  54.     ReadInfFile szInf$
  55.  
  56.     DEST$ = ""
  57.     WINSYSDIR$ = GetWindowsSysDir()
  58.     WINDIR$ = GetWindowsDir()
  59.  
  60. WELCOME:
  61.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  62.     IF sz$ = "CONTINUE" THEN
  63.     UIPop 1
  64.     ELSE
  65.     GOSUB ASKQUIT
  66.     GOTO WELCOME
  67.     END IF
  68.  
  69. CHKWINVER:
  70.     WINMAJORVER% = GetWindowsMajorVersion
  71.     WINMINORVER% = GetWindowsMinorVersion
  72.  
  73.     IF (WINMAJORVER% < 3) OR (WINMAJORVER% = 3 AND WINMINORVER% = 0) THEN
  74.     GOSUB WINVER30
  75.     END IF
  76.  
  77.  
  78. GETPATH:
  79.     SetSymbolValue "EditTextIn", DEST$
  80.     SetSymbolValue "EditFocus", "END"
  81. GETPATHL1:
  82.     'sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  83.     sz$ = "CONTINUE"
  84.     'DEST$ = GetSymbolValue("EditTextOut")
  85.     DEST$ = WINSYSDIR$
  86.  
  87.     IF sz$ = "CONTINUE" THEN
  88.     IF IsDirWritable(DEST$) = 0 THEN
  89.         GOSUB BADPATH
  90.         GOTO GETPATHL1
  91.     END IF
  92.     UIPop 1
  93.     ELSEIF sz$ = "REACTIVATE" THEN
  94.     GOTO GETPATHL1
  95.     ELSEIF sz$ = "BACK" THEN
  96.     UIPop 1
  97.     GOTO WELCOME
  98.     ELSE
  99.     GOSUB ASKQUIT
  100.     GOTO GETPATH
  101.     END IF
  102.      
  103.  
  104.  
  105. '' Check om der er tilstrµkkelig fri diskplads. Krµvet: 1,84Mb (4.613.735b)
  106.  
  107. FREESPACE:
  108.     DESTDRIVE$ = MID$ (DEST$, 1, 1)
  109.     DISKREQ&   = 1900000
  110.  
  111.     IF GetFreeSpaceForDrive (DESTDRIVE$) < DISKREQ& THEN
  112.     GOSUB TOOBIG
  113.     GOTO GETPATH
  114.     END IF
  115.  
  116.     Install
  117.  
  118.  
  119. QUIT:
  120.     ON ERROR GOTO ERRQUIT
  121.  
  122.     IF ERR = 0 THEN
  123.     dlg% = EXITSUCCESS
  124.     ELSEIF ERR = STFQUIT THEN
  125.     dlg% = EXITQUIT
  126.     ELSE
  127.     dlg% = EXITFAILURE
  128.     END IF
  129. QUITL1:
  130.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  131.     IF sz$ = "REACTIVATE" THEN
  132.     GOTO QUITL1
  133.     END IF
  134.     UIPop 1
  135.  
  136.     END
  137.  
  138. ERRQUIT:
  139.     i% = DoMsgBox("Setup sources were corrupted.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  140.     END
  141.  
  142.  
  143. WINVER30:
  144.     sz$ = UIStartDlg(CUIDLL$, WINVER30, "FInfoDlgProc", 0, "")
  145.     IF sz$ = "REACTIVATE" THEN
  146.     GOTO WINVER30
  147.     ELSEIF sz$ = "CONTINUE" THEN
  148.     UIPop 1
  149.     ELSE
  150.     GOSUB ASKQUIT
  151.     GOTO WINVER30
  152.     END IF
  153.     RETURN
  154.  
  155.  
  156.  
  157. BADPATH:
  158.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  159.     IF sz$ = "REACTIVATE" THEN
  160.     GOTO BADPATH
  161.     END IF
  162.     UIPop 1
  163.     RETURN
  164.  
  165. TOOBIG:
  166.     sz$ = UIStartDlg (CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  167.     IF sz$ = "REACTIVATE" THEN
  168.     GOTO TOOBIG
  169.     END IF
  170.     UIPop 1
  171.     RETURN
  172.  
  173.  
  174. ASKQUIT:
  175.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  176.  
  177.     IF sz$ = "EXIT" THEN
  178.     UIPopAll
  179.     ERROR STFQUIT
  180.     ELSEIF sz$ = "REACTIVATE" THEN
  181.     GOTO ASKQUIT
  182.     ELSE
  183.     UIPop 1
  184.     END IF
  185.     RETURN
  186.  
  187.  
  188.  
  189. '**
  190. '** Purpose:
  191. '**     Builds the copy list and performs all installation operations.
  192. '** Arguments:
  193. '**     none.
  194. '** Returns:
  195. '**     none.
  196. '*************************************************************************
  197. SUB Install STATIC
  198.  
  199.     SetRestartDir DEST$
  200.     CDROMDRIVE$ = MID$ (szInf$, 1, 1) + ":" 'Drive that setup.exe was originaly started from
  201.  
  202.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  203.     CDROMDRIVE$ = MID$ (srcDir$, 1, 1) + ":" 'Drive that setup.exe was originaly started from
  204. '    CreateDir DEST$, cmoNone
  205.  
  206. '    SOUNDDIR$ = MakePath (DEST$, "SNDDRV")
  207. '    CreateDir SOUNDDIR$, cmoNone
  208.  
  209.      AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  210. '    AddSectionFilesToCopyList "SysFiles", SrcDir$, WINSYSDIR$
  211. '    AddSectionFilesToCopyList "SoundFiles", SrcDir$, SOUNDDIR$
  212.      CopyFilesInCopyList
  213.  
  214.     CreateProgmanGroup "Roland World of Music", "", cmoOverwrite
  215.     ShowProgmanGroup  "Roland World of Music", 2, cmoNone
  216.  
  217.     CreateProgmanItem "Roland World of Music", "Roland World of Music", MakePath (CDROMDRIVE$, "TITLE\RUNAPW2.EXE R0LANG.APP"), MakePath (CDROMDRIVE$, "TITLE\ROLAND.ICO"), cmoOverwrite
  218.     CreateProgmanItem "Roland World of Music", "Readme.wri", MakePath (WINDIR$, "WRITE.EXE "+ CDROMDRIVE$ + "\README.WRI"), MakePath (CDROMDRIVE$, "WRITE.ICO"), cmoOverwrite
  219.     CreateProgmanItem "Roland World of Music", "DoReMiX AutoDemo", MakePath (CDROMDRIVE$, "DEMO\DOREMIX\AUTODEMO\SCD_DEMO.EXE"), MakePath (CDROMDRIVE$, "DEMO\DOREMIX\AUTODEMO\DOREMIX.ICO"), cmoOverwrite
  220.  
  221.  
  222. ''      Var nogle af systemfilerne allerede installeret og i brug?
  223.  
  224.     IF RestartListEmpty = 0 THEN
  225.     GOSUB RESTARTWIN
  226.     EERCODE% = ExitExecRestart()
  227.     END IF
  228.  
  229.     GOTO DONE
  230.  
  231. RESTARTWIN:
  232.     sz$ = UIStartDlg(CUIDLL$, RESTARTWIN, "FInfoDlgProc", 0, "")
  233.     IF sz$ = "REACTIVATE" THEN
  234.     GOTO RESTARTWIN
  235.     ELSEIF sz$ = "CONTINUE" THEN
  236.     UIPop 1
  237.     ELSE
  238.     GOSUB DOQUIT
  239.     GOTO RESTARTWIN
  240.     END IF
  241.     RETURN
  242.  
  243. DOQUIT:
  244.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  245.  
  246.     IF sz$ = "EXIT" THEN
  247.     UIPopAll
  248.     ERROR STFQUIT
  249.     ELSEIF sz$ = "REACTIVATE" THEN
  250.     GOTO DOQUIT
  251.     ELSE
  252.     UIPop 1
  253.     END IF
  254.     RETURN
  255.  
  256. DONE:
  257. END SUB
  258.  
  259.  
  260.  
  261.  
  262. '**
  263. '** Purpose:
  264. '**     Appends a file name to the end of a directory path,
  265. '**     inserting a backslash character as needed.
  266. '** Arguments:
  267. '**     szDir$  - full directory path (with optional ending "\")
  268. '**     szFile$ - filename to append to directory
  269. '** Returns:
  270. '**     Resulting fully qualified path name.
  271. '*************************************************************************
  272. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  273.     IF szDir$ = "" THEN
  274.     MakePath = szFile$
  275.     ELSEIF szFile$ = "" THEN
  276.     MakePath = szDir$
  277.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  278.     MakePath = szDir$ + szFile$
  279.     ELSE
  280.     MakePath = szDir$ + "\" + szFile$
  281.     END IF
  282. END FUNCTION
  283.  
  284.